package org.jsbd.boss.common.mbean;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 通过mx4j动态的控制一些参数，这样就不需要重启服务了
 * 
 * @author wangzy
 *
 */
public interface ControllerParameterMBean {
	int EXTRACT_RECORD_NUM = 100;

	// 属性
	public void setRecordNum(int recordNum);

	public int getRecordNum();

	public void reloadOnlineLoginData();

	public long getQueueSize(String key);

	public void relushRedisQueue(String key);

	public long getZsetSize(String key);

	public String getSet(String key);

	public String evalGet(String key);

	public Set keys(String keys);

	public String get(String key);

	public void put(String key, String value);

	public String evalHget(String key, String field);

	public Map<String,Integer> getOnlineSimulators(Boolean isBusy);

	public long ttl(String key);

	public void remove(String key);

	public Long evalHincrby(String key, String field, int incryBy);

	public void evalHset(String key, String field, String value);

	/**
	 * hkeys:TODO 请描述该方法是做什么用途的
	 * 
	 * @author <a href="mailto:xupengcheng@zhexinit.com" >徐鹏程</a>
	 * @param key
	 * @return
	 */
	public Set hkeys(String key);
	

	public void redisRemoveOfPre(String key);

	/**
	 * getObject:TODO 请描述该方法是做什么用途的
	 * 
	 * @author <a href="mailto:xupengcheng@zhexinit.com" >徐鹏程</a>
	 * @param key
	 * @return
	 */
	public String getObject(String key);

	/**
	 * evalSet:TODO 请描述该方法是做什么用途的
	 * 
	 * @author <a href="mailto:xupengcheng@zhexinit.com" >徐鹏程</a>
	 * @param key
	 * @param value
	 * @return
	 */
	public Boolean evalSet(String key, String value);

	/**
	 * hget:TODO 请描述该方法是做什么用途的
	 * 
	 * @author <a href="mailto:xupengcheng@zhexinit.com" >徐鹏程</a>
	 * @param key
	 * @param field
	 */
	public String hget(String key, String field);

	/**
	 * hset:TODO 请描述该方法是做什么用途的
	 * 
	 * @author <a href="mailto:xupengcheng@zhexinit.com" >徐鹏程</a>
	 * @param key
	 * @param field
	 * @param value
	 */
	public void hset(String key, String field, String value);
	
	/**
	 * hset:hash key删除
	 * 
	 * @author <a href="mailto:wangjunbiao@zhexinit.com" >王俊标</a>
	 * @param key
	 * @param field
	 */
	public void hdel(String key, String field);
	
	/**
	 * getList:获取list的值
	 * 
	 * @author <a href="mailto:wangjunbiao@zhexinit.com" >王俊标</a>
	 * @param key
	 */
	public List<String> getList(String key);
}
